import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

export class TaskTemplateDto {
  @ApiProperty({
    description: 'Task template ID',
    format: 'uuid',
    example: '123e4567-e89b-12d3-a456-426614174000',
  })
  id: string;

  @ApiProperty({
    description: 'Task template title',
    maxLength: 128,
    example: 'Monthly Report Template',
  })
  title: string;

  @ApiPropertyOptional({
    description: 'Task template description',
    example: 'Template for creating monthly reports',
  })
  description?: string;

  @ApiPropertyOptional({
    description: 'Task category ID',
    format: 'uuid',
    example: '123e4567-e89b-12d3-a456-426614174000',
  })
  taskCategoryId?: string;

  @ApiProperty({
    description: 'Template version number',
    example: 1,
  })
  version: number;

  @ApiProperty({
    description: 'ID of the user who created the template',
    format: 'uuid',
    example: '123e4567-e89b-12d3-a456-426614174000',
  })
  createdBy: string;

  @ApiProperty({
    description: 'Template creation timestamp',
    format: 'date-time',
    example: '2023-01-01T00:00:00Z',
  })
  createdAt: Date;

  @ApiProperty({
    description: 'Template last update timestamp',
    format: 'date-time',
    example: '2023-01-01T00:00:00Z',
  })
  updatedAt: Date;

  @ApiProperty({
    description: 'Whether the template is deleted',
    example: false,
  })
  isDeleted: boolean;
}
